﻿<!-----------------------------------
  -- © 2014 Desempenho Operacional --
  -- By Edson Silva da Silva --------
  ----------------------------------->
  
<?php

   print_r(PDO::getAvailableDrivers());
   
   exit;
   
   $pdo = new PDO("mysql:host=10.54.5.115; dbname=rm", "webroot", "rm970329");
   if(!$pdo){
       die('Erro ao criar a conexão');
   }
   
   //Exemplo - Select
   $rs = $pdo->query("SELECT id, nome FROM cd_equipe")->fetchAll();
   if(!$rs){
      print_r($pdo->errorInfo());
   }
 
   foreach ($rs as $reg){
      echo 'Código: ' . $reg['id']   . '<br />';
      echo 'Nome: '   . $reg['nome'] . '<br /><br />';
   }   
   
   //Exemplo - Insert
//   $executa = $pdo->query("INSERT INTO cliente(idcliente, nome) VALUES ('1', 'Rafael')");
//   if($executa){
//      echo 'Dados inseridos com sucesso!';
//   }
//   else{
//      print_r($pdo->errorInfo());
//   }   
   
   
	//Utilizar prepared statements e bind params
	//
	//Prepared Statemens são consultas pré-preparadas onde dividimos em partes a inserção do código SQL a 
	//ser executado e os valores a serem utilizados (bind params). Com os prepareds statements utilizamos 
	//na query os marcadores de lugar e depois informamos quais serão os valores que deverão ser utilizados 
	//em cada um dos lugares. Isso fornece mais segurança ao nosso banco de dados e nos previne de ações
	//maliciosas como o SQL Injection.
	//Temos duas formas de utilizar essa técnica. Primeiro através dos pontos de interrogação ou então através
	//de pseudo-nomes que funcionam como variáveis.   
//   $idcliente = 100;
//   $nome = "Rafael Wendel Pinheiro";
//   try{
//       $stmte = $pdo->prepare("INSERT INTO cliente(idcliente, nome) VALUES (?, ?)");
//       $stmte->bindParam(1, $idcliente , PDO::PARAM_INT);
//       $stmte->bindParam(2, $nome , PDO::PARAM_STR);
//       $executa = $stmte->execute();
// 
//       if($executa){
//           echo 'Dados inseridos com sucesso';
//       }
//       else{
//           echo 'Erro ao inserir os dados';
//       }
//   }
//   catch(PDOException $e){
//      echo $e->getMessage();
//   }   
   
	//Preparamos a query e substituimos os valores pelo ponto de interrogação (?). Depois, obedecendo a ordem dos pontos, 
	//colocamos cada valor e o tipo de dado daquele atributo.
	//
	//A outra forma:   
	
//	$idcliente = 100;
//   $nome = "Rafael Wendel Pinheiro";
//   try{
//       $stmte = $pdo->prepare("INSERT INTO cliente(idcliente, nome) VALUES (:idcliente, :nome)");
//       $stmte->bindParam(":idcliente", $idcliente , PDO::PARAM_INT);
//       $stmte->bindParam(":nome", $nome , PDO::PARAM_STR);
//       $executa = $stmte->execute();
// 
//       if($executa){
//           echo 'Dados inseridos com sucesso';
//       }
//       else{
//           echo 'Erro ao inserir os dados';
//       }
//   }
//   catch(PDOException $e){
//      echo $e->getMessage();
//   }	
   
	//Nesse caso informamos o nome do parâmetro que utilizamos na query e também o valor e tipo de dado que ele deve receber.
	//
	//Para finalizar vamos ver um exemplo onde o resultado da nossa query nos retorna os obejtos de cada resultado da consulta
	//SQL (seria o equivalente ao mysql_fetch_object).   
   
//   $nome = "Rafael Wendel Pinheiro";
//   try{
//       $stmte = $pdo->prepare("SELECT idcliente, nome FROM cliente WHERE nome = ?");
//       $stmte->bindParam(1, $nome , PDO::PARAM_STR);
//       $executa = $stmte->execute();
// 
//       if($executa){
//           while($reg = $stmte->fetch(PDO::FETCH_OBJ)){ /* Para recuperar um ARRAY utilize PDO::FETCH_ASSOC */
//                echo 'Código: ' . $reg->idcliente . '<br />';
//                echo 'Nome: ' . $reg->nome . '<br /><br />';
//           }
//       }
//       else{
//           echo 'Erro ao inserir os dados';
//       }
//   }
//   catch(PDOException $e){
//      echo $e->getMessage();
//   }	
	
	
	
	
?>